# 设置颜色
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m' # 无颜色

# 简单的日志函数
log_info() { echo -e "${BLUE}[INFO] $1${NC}"; }
log_error() { echo -e "${RED}[ERROR] $1${NC}"; }
log_success() { echo -e "${GREEN}[SUCCESS] $1${NC}"; }


# build docker image with Dockerfile
log_info "开始生成 Agile Note 服务的Docker Image latest版本"


# 预编译 tailwind css
log_info " 开始预编译tailwind css: npm run build:css"
npm run build:css
if [ $? -ne 0 ]; then
    log_error "预编译 tailwind css 失败"
    exit 1
fi
log_success "预编译 tailwind css 成功"


# 生成 final image
log_info  "开始生成 final image"
docker build  --build-arg BASE_IMAGE=agile_note:slim_base -t  agile_note:latest  -f  dockerfile_final_image  .
if [ $? -ne 0 ]; then
    log_error "生成 final image 失败"
    exit 1
fi
log_success "生成 final image 成功"


# 删除悬空镜像
log_info "删除悬空镜像"
docker image prune -f
if [ $? -ne 0 ]; then
    log_error "删除悬空镜像失败"
    exit 1
fi
log_success "删除悬空镜像成功"

# 删除不使用的 volume
log_info "删除不使用的 volume"
docker volume prune -f
if [ $? -ne 0 ]; then
    log_error "删除不使用的 volume 失败"
    exit 1
fi
log_success "删除不使用的 volume 成功"